package br.com.maiscontrole.facade.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.maiscontrole.business.DicaService;
import br.com.maiscontrole.business.NoticiaService;
import br.com.maiscontrole.business.ParceiroService;
import br.com.maiscontrole.business.UsuarioService;
import br.com.maiscontrole.facade.Facade;
import br.com.maiscontrole.model.Dica;
import br.com.maiscontrole.model.Noticia;
import br.com.maiscontrole.model.Parceiro;
import br.com.maiscontrole.model.Usuario;
import br.com.maiscontrole.repository.filter.FiltroDica;
import br.com.maiscontrole.repository.filter.FiltroNoticia;
import br.com.maiscontrole.repository.filter.FiltroParceiro;
import br.com.maiscontrole.repository.filter.FiltroUsuario;

/**
 * 
 * @author milton
 *
 */
@Service("facade")
public class FacadeImpl implements Facade {

	@Autowired
	private UsuarioService usuarioService;

	@Autowired
	private NoticiaService noticiaService;

	@Autowired
	private DicaService dicaService;

	@Autowired
	private ParceiroService parceiroService;

	public FacadeImpl() {

	}

	@Override
	public Dica buscarDica(Long id) {
		return this.dicaService.buscar(id);
	}

	@Override
	public Noticia buscarNoticia(Long id) {
		return this.noticiaService.buscar(id);
	}

	@Override
	public Parceiro buscarParceiro(Long id) {
		return this.parceiroService.buscar(id);
	}

	@Override
	public Usuario buscarUsuario(Long id) {
		return this.usuarioService.buscar(id);
	}

	@Override
	public List<Dica> consultar(FiltroDica filtro) {
		return this.dicaService.consultar(filtro);
	}

	@Override
	public List<Noticia> consultar(FiltroNoticia filtro) {
		return this.noticiaService.consultar(filtro);
	}

	@Override
	public List<Parceiro> consultar(FiltroParceiro filtro) {
		return this.parceiroService.consultar(filtro);
	}

	@Override
	public List<Usuario> consultar(FiltroUsuario filtro) {
		return this.usuarioService.consultar(filtro);
	}

	@Override
	public void editar(Dica dica, Usuario editar) {
		this.dicaService.editar(dica, editar);
	}

	@Override
	public void editar(Noticia noticia, Usuario editar) {
		this.noticiaService.editar(noticia, editar);
	}

	@Override
	public void editar(Parceiro parceiro, Usuario editar) {
		this.parceiroService.editar(parceiro, editar);
	}

	@Override
	public void editar(Usuario usuario, Usuario editar) {
		this.usuarioService.editar(usuario, editar);
	}

	@Override
	public void excluir(Dica dica) {
		this.dicaService.excluir(dica);
	}

	@Override
	public void excluir(Noticia noticia) {
		this.noticiaService.excluir(noticia);
	}

	@Override
	public void excluir(Parceiro parceiro) {
		this.parceiroService.excluir(parceiro);
	}


	@Override
	public void excluir(Usuario usuario) {
		this.usuarioService.excluir(usuario);
	}
	@Override
	public void inserir(Dica dica, Usuario inserir) {
		this.dicaService.inserir(dica, inserir);
	}
	@Override
	public void inserir(Noticia noticia, Usuario inserir) {
		this.noticiaService.inserir(noticia, inserir);
	}
	@Override
	public void inserir(Parceiro parceiro, Usuario inserir) {
		this.parceiroService.inserir(parceiro, inserir);

	}
	@Override
	public void inserir(Usuario usuario, Usuario inserir) {
		this.usuarioService.inserir(usuario, inserir);
	}

}
